home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il_c / ilKernel.z / ilKernel
Encoding:
Text File  |  2002-10-03  |  11.8 KB  |  331 lines

  1.  
  2.  
  3.  
  4. iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllKKKKeeeerrrrnnnneeeellll - class to define a kernel
  10.  
  11. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  12.      ilWatchedObject
  13.  
  14. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  15.      #include <il/ilCdefs.h>
  16.  
  17. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.      ilKernel is the base class for deriving a three-dimensional kernel.  An
  19.      ilKernel is defined by an _x, _y, and _z dimension, a data type, the kernel
  20.      data, and the kernel origin. ilKernel also provides functions to access
  21.      kernel attributes and data.
  22.  
  23.      An ilKernel is conceptually equivalent to a three-dimensional  matrix
  24.      whose elements are stored in row major form. Additionally, a kernel can
  25.      have an origin, typically at the center of the matrix.
  26.  
  27.      ilKernel, by default, defines a general kernel. iiiillllSSSSeeeeppppKKKKeeeerrrrnnnneeeellll is a
  28.      separable kernel derived from ilKernel.
  29.  
  30.  
  31. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  32.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss
  33.  
  34.           ilKernel* ilKernelCreate(iflDataType type, void *d, int x,
  35.                                    int y, int z)
  36.  
  37.  
  38.      FFFFuuuunnnnccccttttiiiioooonnnnssss ttttoooo sssseeeetttt////ggggeeeetttt kkkkeeeerrrrnnnneeeellll aaaattttttttrrrriiiibbbbuuuutttteeeessss
  39.  
  40.           int ilKernelGetXsize(ilKernel *obj)
  41.           int ilKernelGetYsize(ilKernel *obj)
  42.           int ilKernelGetZsize(ilKernel *obj)
  43.           void ilKernelGetSize(ilKernel *obj, int* x, int* y, int* z)
  44.           void ilKernelGetOrigin(ilKernel *obj, int *x, int *y,
  45.                                  int *z)
  46.           void ilKernelSetOrigin(ilKernel *obj, int x, int y, int z)
  47.           iflDataType ilKernelGetDataType(ilKernel *obj)
  48.           ilKernelType ilKernelGetKernelType(ilKernel *obj)
  49.           virtual int ilKernelIsEquivalent(ilKernel *obj, const ilKernel *otherKernel)
  50.           void ilKernelSetClamp(ilKernel *obj, int on)
  51.           int ilKernelIsClampSet(ilKernel *obj)
  52.  
  53.  
  54.      GGGGeeeettttttttiiiinnnngggg aaaannnndddd sssseeeettttttttiiiinnnngggg kkkkeeeerrrrnnnneeeellll ddddaaaattttaaaa
  55.  
  56.           virtual double ilKernelGetElement(ilKernel *obj, int x,
  57.                                             int y, int z)
  58.           virtual void ilKernelSetElement(ilKernel *obj, double val,
  59.                                           int x, int y, int z)
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))
  71.  
  72.  
  73.  
  74.           void *ilKernelGetData(ilKernel *obj)
  75.           void ilKernelSetData(ilKernel *obj, const void *data)
  76.           virtual void ilKernelScale(ilKernel *obj, double s)
  77.  
  78.  
  79.      UUUUttttiiiilllliiiittttyyyy ffffuuuunnnnccccttttiiiioooonnnnssss
  80.  
  81.           virtual void ilKernelCalcGain(ilKernel *obj, double* min,
  82.                                         double* max)
  83.  
  84.  
  85. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  86.      iiiillllKKKKeeeerrrrnnnneeeellll(((())))
  87.  
  88.           ilKernel* ilKernelCreate(iflDataType type, void *d, int x,
  89.                                    int y, int z)
  90.  
  91.  
  92.           Construct a kernel by copying user data, assumed to be in row major
  93.           order.  If the pointer _d_a_t_a is NULL, memory is still allocated in
  94.           the specified size, but no data is copied.  By default, the kernel
  95.           origin is set to (x/2, y/2, z/2), and the kernel type is
  96.           _i_l_K_e_r_n_G_e_n_e_r_a_l.
  97.  
  98.      ccccaaaallllccccGGGGaaaaiiiinnnn(((())))
  99.  
  100.           virtual void ilKernelCalcGain(ilKernel *obj, double* min,
  101.                                         double* max)
  102.  
  103.  
  104.           This method calculates the worst case gain applied to an input
  105.           range, the passed in _m_i_n and _m_a_x values are updated with the result
  106.           of applying the worst case gain.
  107.  
  108.      ccccooooppppyyyy(((())))
  109.  
  110.           virtual ilKernel* ilKernelCopy(ilKernel *obj)
  111.  
  112.  
  113.           Constructs a kernel which is a copy of this kernel.  The kernel data
  114.           is copied into the returned object.
  115.  
  116.      ggggeeeettttDDDDaaaattttaaaa(((())))
  117.  
  118.           void *ilKernelGetData(ilKernel *obj)
  119.  
  120.  
  121.           Returns a pointer to the kernel data.  Use the kernel data type to
  122.           cast pointer to the correct type.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))
  137.  
  138.  
  139.  
  140.      ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(((())))
  141.  
  142.           iflDataType ilKernelGetDataType(ilKernel *obj)
  143.  
  144.  
  145.           Returns the type of the kernel data.
  146.  
  147.      ggggeeeettttEEEElllleeeemmmmeeeennnntttt(((())))
  148.  
  149.           virtual double ilKernelGetElement(ilKernel *obj, int x,
  150.                                             int y, int z)
  151.  
  152.  
  153.           Returns one element from the kernel data, indexed by _x, _y, _a_n_d _z.
  154.  
  155.      ggggeeeettttKKKKeeeerrrrnnnneeeellllTTTTyyyyppppeeee(((())))
  156.  
  157.           ilKernelType ilKernelGetKernelType(ilKernel *obj)
  158.  
  159.  
  160.           Returns the kernel type, _i_l_K_e_r_n_G_e_n_e_r_a_l for a general kernel, and
  161.           _i_l_K_e_r_n_S_e_p_a_r_a_b_l_e for a separable kernel.
  162.  
  163.      ggggeeeettttOOOOrrrriiiiggggiiiinnnn(((())))
  164.  
  165.           void ilKernelGetOrigin(ilKernel *obj, int *x, int *y,
  166.                                  int *z)
  167.  
  168.  
  169.           Returns the kernel's origin in _x, _y, _z.
  170.  
  171.      ggggeeeettttSSSSiiiizzzzeeee(((())))
  172.  
  173.           void ilKernelGetSize(ilKernel *obj, int* x, int* y, int* z)
  174.  
  175.  
  176.           Returns the kernel's (x,y,z) size in _x, _y, and _z respectively.
  177.  
  178.      ggggeeeettttXXXXssssiiiizzzzeeee(((())))
  179.  
  180.           int ilKernelGetXsize(ilKernel *obj)
  181.  
  182.  
  183.           Returns the _x dimension of the kernel.
  184.  
  185.      ggggeeeettttYYYYssssiiiizzzzeeee(((())))
  186.  
  187.           int ilKernelGetYsize(ilKernel *obj)
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))
  203.  
  204.  
  205.  
  206.           Returns the _y dimension of the kernel.
  207.  
  208.      ggggeeeettttZZZZssssiiiizzzzeeee(((())))
  209.  
  210.           int ilKernelGetZsize(ilKernel *obj)
  211.  
  212.  
  213.           Returns the _z dimension of the kernel.
  214.  
  215.      iiiissssCCCCllllaaaammmmppppSSSSeeeetttt(((())))
  216.  
  217.           int ilKernelIsClampSet(ilKernel *obj)
  218.  
  219.  
  220.           This method returns TRUE if this kernel is intended for use with
  221.           clamping.
  222.  
  223.      iiiissssEEEEqqqquuuuiiiivvvvaaaalllleeeennnntttt(((())))
  224.  
  225.           virtual int ilKernelIsEquivalent(ilKernel *obj, const ilKernel *otherKernel)
  226.  
  227.  
  228.           Returns TRUE if _o_t_h_e_r_K_e_r_n_e_l has the same dimensions, data type, and
  229.           data of this kernel, and returns FALSE otherwise.
  230.  
  231.      ssssccccaaaalllleeee(((())))
  232.  
  233.           virtual void ilKernelScale(ilKernel *obj, double s)
  234.  
  235.  
  236.           This method scales all the kernel weights by _s.
  237.  
  238.      sssseeeettttCCCCllllaaaammmmpppp(((())))
  239.  
  240.           void ilKernelSetClamp(ilKernel *obj, int on)
  241.  
  242.  
  243.           This method is used to indicate that the kernel is intended to be
  244.           used with clamping, the values returned by ccccaaaallllccccGGGGaaaaiiiinnnn() will then be
  245.           simply adjusted for the kernel gain, not for the worst case
  246.           behavior.
  247.  
  248.      sssseeeettttDDDDaaaattttaaaa(((())))
  249.  
  250.           void ilKernelSetData(ilKernel *obj, const void *data)
  251.  
  252.  
  253.           Copies _d_a_t_a into the kernel. The data is assumed to be of the type
  254.           and dimensions corresponding to the size and type used in the kernel
  255.           construction.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))        IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll        iiiillllKKKKeeeerrrrnnnneeeellll((((3333))))
  269.  
  270.  
  271.  
  272.      sssseeeettttEEEElllleeeemmmmeeeennnntttt(((())))
  273.  
  274.           virtual void ilKernelSetElement(ilKernel *obj, double val,
  275.                                           int x, int y, int z)
  276.  
  277.  
  278.           Sets one element from the kernel data, indexed by _x, _y, _a_n_d _z. _t_o
  279.           _v_a_l.
  280.  
  281.      sssseeeettttOOOOrrrriiiiggggiiiinnnn(((())))
  282.  
  283.           void ilKernelSetOrigin(ilKernel *obj, int x, int y, int z)
  284.  
  285.  
  286.           Set the kernel origin to (x, y, z);
  287.  
  288. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
  289.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllWWWWaaaattttcccchhhheeeeddddOOOObbbbjjjjeeeecccctttt
  290.      addWatchCallback(), doWatchCallbacks(), removeWatchCallback()
  291.  
  292. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  293.      ilSepKernel
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.